
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class C1_11_5 {
    static int friendNum;
    static int n;
    static double[] cakes;
    static double output = 0;

    public static boolean ifOK(double x) {
        int sum = 0;
        for (int i = 0; i < n; i++) {
            sum += cakes[i] / x;
        }
        if (sum >= friendNum) {
            output = x;
            return true;
        }
        return false;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        n = Integer.parseInt(str.split(" ")[0]);
        friendNum = Integer.parseInt(str.split(" ")[1]);
        friendNum++;
        String[] strs = br.readLine().split(" ");
        cakes = new double[n];
        double right = Long.MIN_VALUE;
        for (int i = 0; i < n; i++) {
            int tmp = Integer.parseInt(strs[i]);
            cakes[i] = tmp * 3.1415926535897932 * tmp;
            right = Math.max(right, cakes[i]);
        }
        double left = 0;
        while (left <= right) {
            double mid = (left + right) / 2;
            if (ifOK(mid)) {
                left = mid + 0.00001;
            } else {
                right = mid - 0.00001;
            }
        }
        System.out.printf("%.3f", output);
    }
}
